using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using Canvas.Base;

namespace Canvas.CanvasInterfaces
{
    public interface ICanvas
    {
        /// <summary>
        /// Lay Model
        /// </summary>
        IModel DataModel { get;}
        UnitPoint ScreenTopLeftToUnitPoint();
        UnitPoint ScreenBottomRightToUnitPoint();
        PointF ToScreen(UnitPoint unitpoint);
        float ToScreen(double unitvalue);
        double ToUnit(float screenvalue);
        UnitPoint ToUnit(PointF screenpoint);

        void Invalidate();
        IDrawObject currentObject { get;}
        Rectangle ClientRectangle { get; }
        Graphics Graphics { get;}
        Pen CreatePen(Color color, float unitWidth);
        void DrawLine(ICanvas canvas, Pen pen, UnitPoint center, float radius,
            float beginangle, float angle);
    }
}
